#pragma once

#include <d3d11_1.h>

struct D3dRenderHandle
{
	ID3D11Device* d3dDevice;
	ID3D11DeviceContext* d3dContext;
	IDXGISwapChain* swapChain;
};

class D3dInitializer
{
public:
	D3dInitializer(HWND windowHandle, UINT windowWidth, UINT windowHeight);
	~D3dInitializer(void);
	HRESULT InitializeD3D(UINT antiAliasingCound, UINT antiAliasingQuality);
	D3dRenderHandle* GetRenderHandle(void);
	void ClearD3D(void);
	ID3D11RenderTargetView* CreateRenderTargetView();
private:
	HWND m_windowHandle;
	UINT m_windowWidth;
	UINT m_windowHeight;
	D3dRenderHandle m_renderHandle;
};